#ifndef __MODULE_LOG_H
#define __MODULE_LOG_H

#include "stm32f1xx.h"
#include <stdarg.h>
#include <stdint.h>

// 选择输出方式
typedef enum
{
    LOG_OUTPUT_RTT = 0,
    LOG_OUTPUT_UART
} log_output_t;

// 日志模块枚举
typedef enum
{
    LOG_MODULE_SYSTEM = 0,
    LOG_MODULE_UARTPROTOCOL,
    LOG_MODULE_IR,
    LOG_MODULE_MAX
} log_module_t;

// API
void log_init(UART_HandleTypeDef *huart);                        // 初始化，若用 UART 则传 huart
void log_set_output_type(log_output_t type);                     // 设置日志输出方式
void log_set_module_enable(log_module_t module, uint8_t enable); // 控制模块开关
void log_printf(log_module_t module, const char *fmt, ...);      // 打印日志

#endif /* __MODULE_LOG_H */
